snesclassicfandomcom-20200214-history
Retroarch
Retroarch is a frontend for different Libretro cores. You can think of it as a multisystem emulator, altough it can do more than emulate games (like play videos or run stand-alone games). Libretro doesn't develop versions of Retroarch or Retroarch cores compatible with the SNES Classic. Instead, individuals or groups take this task upon themselves. Among these is KMFDManic, that signalises the versions or Retroarch and cores compiled by him with a "km" prefix, and Mod My Classic, who tipically doesn't rename their versions, but at one point called thir version of Retroarch of "Retroarch Neo". There is also Retroarch Clover, that was compiled by Cluster(?). Updating Retroarch When Retroarch is updated from a previous, compatible version, the files retroarch.cfg (regarding global options when no override is in place ?), and retroarch-core-options.cfg (regarding core-specific options, in Quick Menu --> Option, when no override is in place ?) get overwritten by default files. Overrides, on the /overrides folder, and overlays, in the /overlays folder, don't get deleted. Directories structure /etc/libretro/config - where options, overrides, and remaps are stored. Dummy Folder method It is a method used by KMFDManic to load games. It consists in having the games inside a folder and using the Load Content option on Retroarch. KMFDManic tipically calls thes folder _dummy, hence the method name. Features There are plenty of options to mess around on Retroarch. 'Fast forward' It is possible to enable fast forwarding on Game Boy games. 'Retroarch overlays' Retroarch borders are different than the stock system borders. While the SNES Classic stock borders are background images (i.e.: they are situated "behind" the gameplay window), Retroarch uses overlays. These are images that go "on top" of the gameplay area. There is a project called The Bezel Project that intended to add game-specific borders to all games of all platforms for the Raspberyy Pi. It has been adapted to the Sega Mega Drive/Genesis Mini by a user, but not for the SNES Classic as of yet. Retroarch overlays can't change hue/luminosity/saturation on the fly. Overlays by default are stored in /etc/libretro/overlays (?). /media/hakchi/retroarch/overlays ? can also be used. 'Run-ahead' It is possible to enable run-ahead in order to reduce input lag in some less demanding cores, like NES emulator cores. A NES Classic running RetroArch with run-ahead: https://www.reddit.com/r/minines/comments/ev3hiw/super_mario_bros_on_nes_mini_using_retroarch_181/ Cores To run SNES games through Retroarch the user will need a Snes9x core. There are several different Snes9x cores, that come with a number. Usually the SNES9x with lower numbers are less accurate and less resource intensive. 'Stand-alone games?' *'2048' *'Mr.Boom', Bomberman-like game. Allows (online ?) multiplayer of up to ??? players. *'xRixk', a Rick Dangerous-like game. What button does what? *'Dinothawr', The first stand-alone game for Libretro (?). 'Game engines' *'NXEngine', A port of the NXEngine for Libretro. NXEngine is a clone engine (?) of the original engine of the game Cave Story. It is a game engine that allows the user to play Cave Story. The player needs to add the .exe executable of the original freeware game (or one of its mods, such as translations) to Hakchi2 CE, then add the remaining files from the original game to the CLV game folder. Suspend points do not work (?) *'PrBoom', Game engine for Doom games and mods. (?) *'TyrQuake', Allows to run the game Quake. *'RPGMaker' *'OpenBOR'? 'Computers, arcades and consoles emulators' Is DosBox an emulator? *'Gambatte', Game Boy and Game Boy Color emulator. Gambatte is a japanese word, it means approximatelly "go for it" or "do your best". *'Genesis Plus GX', An emulator of multi Sega systems. It emulates the Mega Drive, Master System, Game Gear, and the Sega CD (?). *'GLupeN64', Nintendo 64 emulator. Hit-or-miss performance. *'mGBA', Overall the best Game Boy Advance emulator. Does not require a separated BIOS file. Some games present audio glitches, like popping audio. Supports save states. Also emulates both Game Boy and Game Boy Color, and has support for Super Game Boy borders (and palletes ?). *PCSX ReARMed NEON, PlayStation emulator. *'Snes9x' (various), A SNES emulator. Its name and origins come from Snes97 and Snes98 (?), different emulators that were then merged, creating Snes9x. Usually the bigger the identifier number, the more resource intensive it is. MSU1 games should be tried with Snes9x2016 or Snes9x2018. *'FB Alpha' (various), Emulator of varous arcades machines, and other systems, like Neo-Geo MVS, and Neo-Geo AES (?). Ussually the greater the number identifying the core, the more resource intensive it is. *'gpSP', Game Boy Advance emulator. An alternative for the games that mGBA can't run well. Requires a BIOS file (the Normatt's open source GBA BIOS can be used, altough it is not as good as the official). Saves states don't work reliably. May present some audio and graphical glitches. *'MAME' (various), MAME stads for M'ulti '''A'rcade 'M'achine 'E'mulator, and as it implies, MAME is an emulator of various arcades machines (and other systems ?). Usually the bigger the identifier number the more resource intensive it is. Save states don't work reliably. *'''PicoDrive, Multi Sega platforms emulator. Emulates the Sega 32X, unlike Genesis Plus GX. .m3u files do not work in PicoDrive. *'Stella', An Atari VCS (2600) emulator. 'Non-game related cores' *'Imageviewer', Displays image files, like .jpg and .png files (?) *'ffmpeg', A barebones media player. BIOS files Name and location of BIOS files can be found on Libretro's site: https://docs.libretro.com/library/bios/#links-to-the-core-specific-bios-information In order to work properly, some cores need what are called BIOS files. BIOS files may go in USB:\hakchi\retroarch\system if the user is using an OTG adapter, and should go in /etc/libretro/system in the SNES Classic if the user is not using an USB flash drive. In some cases, however, ther may be needed a subfolder inside the system folder, for example /etc/libretro/system/keropi or /etc/libretro/system/keropi To check of the BIOS is being detected by the Retroarch core, the user may go to the Retroarch menu with the core in question loaded, then go to Main Menu --> Information --> Core Information, in the section Firmware(s):. Criticism At least one study found out that using Retroarch instead of the stock SNES emulator Canoe would lead to an increased input lag. The stock rewind function is not available is playing through Retroarch. Interface Called "menu driver". The main ones are rGUI, XMB, and Ozone. 'Quick Menu' ;Controls For rebinding keys (remaps). These remaps should then be saved by selecting Save Game (Core) Remap File. ;Save Game Remap File For saving rebinds set on the Controls options for the specific game loaded. ;Save Core Remap File For saving rebinds set on the Controls options for the specific core loaded. ;Overrides For creating or updating an override for the specific game or core loaded. If there's already an override in place and changes are made, but the override is not updated, the override (with the old setup) will be loaded and the recently made changes will be lost. To avoid this, the override should be updated after the desired changes. To delete overrides in place, it is necessary to FTP into the SNES Classic to the directory /etc/libretro/config/CORE (or /etc/libretro/.config/retroarch/config/CORE in older versions of Retroarch - is there any equivalent address on USB ?) and delete the corresponding .cfg files. ;Cheats Allows the use of cheats in game. Cheats need to be loaded beforehand (usually by a specific cheats hmod), then the cheats need to be enabled and applied (?). Cheats can also be added manually by dropping .cht cheat files on the directory /etc/libretro/.config/retroarch/cheats/(system name folder) by using FTP (is there any equivalent address on USB?). (?) 'Settings' ;User Interface *Menu Widgets - This controls if notifications (but not overrides notificatinos?) are displayed or not. If set to OFF, no controller, disk swapping, or achievements will be displayed, but overrides notifications will still be displayed? ;Input These changes also change the behavior of keys on the Retroarch menu itself. (?) *Input Hotkey Bind **Enable Hotkeys - this key needs to be held down when pressing a hotkey for the hotkey have effect. The button selected to this function stops working on the RetroArch menus (?). ;Frame Throttle *Rewind **Rewind Enable - allows for the rewinding of gameplay if it is set to ON. It may impact the performance of games, resulting in slowdowns. **Rewind Granularity - it is possible then to adjust the rewind granularity (what is it?) ;Onscreen Display *Onscreen Notifications - It controls wether or not overrides notifications (?) will be displayed. If set to OFF, no overrides notification ? will be displayed. Compiling RetroArch and RetroArch cores builds How to compile a RetroArch (and cores) build that can be installed on the SNES Classic?